<template>
  <div class="dashboard-editor-container">
    <!-- <github-corner class="github-corner" /> -->

    <panel-group @handleSetLineChartData="handleSetLineChartData" />

    <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px; display: flex; align-items: center; padding-top: 36px;">
      <span style="position: absolute; top: 44px; left: 50%; transform: translate(-50%, 0); font-size: 18px; color: #0090C0;">VIP用户分布</span>
      <chart-map style="height: 450px; width: 50%;" :value="mapData" text="VIP用户分布" />
      <el-table
        :data="mapData"
        border
        max-height="306px"
        style="width: 30%;"
      >
        <el-table-column
          type="index"
          width="50"
          label="排名"
        />
        <el-table-column
          prop="name"
          label="省份"
        />
        <el-table-column
          prop="value"
          label="VIP数量"
        />
        <el-table-column
          prop="percent"
          label="占比"
        />
      </el-table>
    </el-row>

    <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
      <div style="text-align: right; position: relative;">
        <!-- <span style='color: #1890ff; margin: 0 auto; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);'>每日新增报告</span> -->
        <el-radio-group
          v-model="userRadio"
          size="mini"
          @change="user_trending"
        >
          <el-radio-button label="0">日</el-radio-button>
          <el-radio-button label="1">周</el-radio-button>
        </el-radio-group>
      </div>
      <line-chart :chart-data="lineTwo" />
    </el-row>

    <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
      <div style="text-align: right; position: relative;">
        <!-- <el-radio v-model="timeRadio" label="1">天</el-radio> -->
        <!-- <el-radio v-model="timeRadio" label="2">周</el-radio> -->
        <!-- <span style='color: #1890ff; margin: 0 auto; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);'>每日新增用户</span> -->
        <el-radio-group
          v-model="timeRadio"
          size="mini"
          @change="report_trending"
        >
          <el-radio-button label="0">日</el-radio-button>
          <el-radio-button label="1">周</el-radio-button>
        </el-radio-group>
      </div>
      <line-chart :chart-data="lineChartData" />
    </el-row>

    <!-- <el-row :gutter="32">
      <el-col :xs="24" :sm="24" :lg="8">
        <div class="chart-wrapper">
          <raddar-chart />
        </div>
      </el-col>
      <el-col :xs="24" :sm="24" :lg="8">
        <div class="chart-wrapper">
          <pie-chart />
        </div>
      </el-col>
      <el-col :xs="24" :sm="24" :lg="8">
        <div class="chart-wrapper">
          <bar-chart />
        </div>
      </el-col>
    </el-row>

    <el-row :gutter="8">
      <el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 12}" :xl="{span: 12}" style="padding-right:8px;margin-bottom:30px;">
        <transaction-table />
      </el-col>
      <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">
        <todo-list />
      </el-col>
      <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">
        <box-card />
      </el-col>
    </el-row> -->
  </div>
</template>

<script>
import PanelGroup from './components/PanelGroup'
import LineChart from './components/LineChart'
import ChartMap from './components/Map'
// import RaddarChart from './components/RaddarChart'
// import PieChart from './components/PieChart'
// import BarChart from './components/BarChart'
// import TransactionTable from './components/TransactionTable'
// import TodoList from './components/TodoList'
// import BoxCard from './components/BoxCard'
import { report_trending, user_trending, location_trending } from '@/api/analysis'

const lineChartData = {
  newVisitis: {
    expectedData: [100, 120, 161, 134, 105, 160, 165],
    actualData: [120, 82, 91, 154, 162, 140, 145]
  },
  messages: {
    expectedData: [200, 192, 120, 144, 160, 130, 140],
    actualData: [180, 160, 151, 106, 145, 150, 130]
  },
  purchases: {
    expectedData: [80, 100, 121, 104, 105, 90, 100],
    actualData: [120, 90, 100, 138, 142, 130, 130]
  },
  shoppings: {
    expectedData: [130, 140, 141, 142, 145, 150, 160],
    actualData: [120, 82, 91, 154, 162, 140, 130]
  }
}

export default {
  name: 'DashboardAdmin',
  components: {
    PanelGroup,
    LineChart,
    ChartMap
    // RaddarChart,
    // PieChart,
    // BarChart,
    // TransactionTable,
    // TodoList,
    // BoxCard
  },
  data() {
    return {
      lineChartData: {
        expectedData: [],
        actualData: []
      },
      lineTwo: {
        expectedData: [],
        actualData: []
      },
      timeRadio: '0',
      userRadio: '0',
      mapData: []
    }
  },
  mounted() {
    this.report_trending()
    this.user_trending()
    this.location_trending()
  },
  methods: {
    handleSetLineChartData(type) {
      this.lineChartData = lineChartData[type]
    },
    report_trending() {
      report_trending({ type: this.timeRadio }).then((res) => {
        const result = res.data
        const obj = {
          expectedData: [],
          actualData: [],
          title: `每${this.timeRadio === '0' ? '日' : '周'}新增报告`
        }
        for (let i = 0; i < result.length; i++) {
          obj.expectedData.push(result[i].count)
          obj.actualData.push(result[i].x)
        }
        this.lineChartData = obj
      })
    },
    user_trending() {
      user_trending({ type: this.userRadio }).then((res) => {
        const result = res.data
        const obj = {
          expectedData: [],
          actualData: [],
          title: `每${this.userRadio === '0' ? '日' : '周'}新增用户`
        }
        for (let i = 0; i < result.length; i++) {
          obj.expectedData.push(result[i].count)
          obj.actualData.push(result[i].x)
        }
        this.lineTwo = obj
      })
    },
    location_trending() {
      location_trending().then((res) => {
        const result = res.data
        const arr = result
        for (let i = 0; i < arr.length; i++) {
          arr[i].name = arr[i].name && arr[i].name.replace('省', '')
          arr[i].name = arr[i].name && arr[i].name.replace('市', '')
          arr[i].name = arr[i].name && arr[i].name.replace('壮族自治区', '')
          arr[i].name = arr[i].name && arr[i].name.replace('回族自治区', '')
          arr[i].name = arr[i].name && arr[i].name.replace('维吾尔自治区', '')
          arr[i].name = arr[i].name && arr[i].name.replace('自治区', '')
        }
        this.mapData = arr
      })
    }
  }
}
</script>

<style lang="scss" scoped>
.dashboard-editor-container {
  padding: 32px;
  background-color: rgb(240, 242, 245);
  position: relative;

  .github-corner {
    position: absolute;
    top: 0px;
    border: 0;
    right: 0;
  }

  .chart-wrapper {
    background: #fff;
    padding: 16px 16px 0;
    margin-bottom: 32px;
  }
}

@media (max-width: 1024px) {
  .chart-wrapper {
    padding: 8px;
  }
}
</style>
